package com.hifar.test.collectdata.service;

import java.util.Date;
import java.util.List;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hifar.test.collectdata.pojo.VO.*;

import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.IService;
import com.hifar.test.collectdata.pojo.CollectData;

/**
 * <p>
 * 采集数据表 服务类
 * </p>
 *
 * @author wangkepeng
 * @since 2024-12-17 11:08:21
 */
@DS("collectdb")
public interface ICollectDataService extends IService<CollectData> {

    /**
     * 分页查询采集气候数据
     *
     * @param page      分页
     * @param equipCode 设备编号
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    Page<ClimateCollectionData> pageData(Page<ClimateCollectionData> page, String equipCode, Date startTime, Date endTime);

    /**
     * 询采集气候数据
     *
     * @param equipCode
     * @param startTime
     * @param endTime
     * @return
     */
    List<ClimateCollectionData> listData(String equipCode, Date startTime, Date endTime);

    /**
     * 批量新增气候设备运行记录
     *
     * @param collectDataAddVO
     */
    void batchAddClimateData(ClimateCollectDataBatchAddVO collectDataAddVO);

    /**
     * 批量新增力学设备运行记录
     *
     * @param collectDataAddVO
     */
    void batchAddDynamicsData(DynamicsCollectDataBatchAddVO collectDataAddVO);

    /**
     * 分页查询气候设备运行记录
     *
     * @param page      分页
     * @param equipId   设备id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    Page<ClimateCollectDataVO> listPageClimate(Page<ClimateCollectDataVO> page, String equipId, Date startTime, Date endTime);

    /**
     * 分页查询气候设备运行记录
     *
     * @param equipId   设备id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    List<ClimateCollectDataVO> listClimate(String equipId, Date startTime, Date endTime);

    /**
     * 分页查询力学设备运行记录
     *
     * @param page      分页
     * @param equipId   设备id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    Page<DynamicsCollectDataVO> listPageDynamics(Page<DynamicsCollectDataVO> page, String equipId, Date startTime, Date endTime);

    /**
     * 分页查询力学设备运行记录
     *
     * @param equipId   设备id
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    List<DynamicsCollectDataVO> listDynamics(String equipId, Date startTime, Date endTime);

    /**
     * 编辑力学设备运行记录
     *
     * @param dynamicsCollectDataVO 力学数据
     */
    void editDynamics(DynamicsCollectDataVO dynamicsCollectDataVO);

    /**
     * 编辑气候设备运行记录
     *
     * @param climateCollectDataVO 气候数据
     */
    void editClimate(ClimateCollectDataVO climateCollectDataVO);

    /**
     * 删除设备运行记录
     *
     * @param collectDataDeleteVO
     */
    void delete(CollectDataDeleteVO collectDataDeleteVO);

    /**
     * 新增气候设备运行记录
     *
     * @param collectDataAddVO
     */
    void addClimateData(ClimateCollectDataAddVO collectDataAddVO);

    /**
     * 新增力学设备运行记录
     *
     * @param dynamicsCollectDataAddVO
     */
    void addDynamicsData(DynamicsCollectDataAddVO dynamicsCollectDataAddVO);

    /**
     * 查询设备运行记录
     *
     * @param equipCode 设备编号
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    List<EquipRunRecordTimeVO> listRunRecord(String equipCode, Date startTime, Date endTime);

    /**
     * 查询设备运行记录
     *
     * @param equipCode 设备编号
     * @param startTime 开始时间
     * @param endTime   结束时间
     * @return
     */
    public List<CollectData> queryClimateData(String equipCode, Date startTime, Date endTime);
}
